﻿namespace Origin2.Core
{
    /// <summary>
    /// Represents an object in a game: this essentially holds all of the data that should be consistent to an object
    /// </summary>
    public interface IObject
    {
        /// <summary>
        /// The ObjectContainer that is holding this object
        /// </summary>
        IObjectContainer Parent { get; }

        /// <summary>
        /// Whether this object should be deleted in the next possible opportunity
        /// </summary>
        bool MarkedForDeletion { get; }

        /// <summary>
        /// Sets MarkedForDeletion to true
        /// </summary>
        void Delete();
    }
}
